module.exports = (app) => {
  const express = require('express')
  const router = express.Router()
  const Category = require('./../../models/Category')

  // 新建分类路由
  router.post('/categories', async (req, res) => {
    // 这里要想能够接收表单提交的数据，必须使用app.use(express.json())
    const model = await Category.create(req.body)
    res.send(model)
  })

  // 编辑分类，点击提交
  router.put('/categories/:id', async (req, res) => {
    // 这里要想能够接收表单提交的数据，必须使用app.use(express.json())
    const model = await Category.findByIdAndUpdate(req.params.id, req.body)
    res.send(model)
  })
  // 删除分类，点击提交
  router.delete('/categories/:id', async (req, res) => {
    // 这里要想能够接收表单提交的数据，必须使用app.use(express.json())
    await Category.findByIdAndDelete(req.params.id, req.body)
    res.send({
      success: true
    })
  })

  // 分类列表路由
  router.get('/categories', async (req, res) => {
    // 集合查询（关联查询），因为这里parents是一个id，要想变成对象，就需要关联查询
    const items = await Category.find().populate('parents').limit(10)
    res.send(items)
  })

  // 根据id获取该分类信息
  router.get('/categories/:id', async (req, res) => {
    const model = await Category.findById(req.params.id)
    res.send(model)
  })

  app.use('/admin/api', router)
}